package ca.etsmtl.log120.tp1.gui;

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;

/******************************************************
Cours : LOG120
Session : E2011
Groupe : 01
Projet : Laboratoire #1
Etudiants : Nicolas Blais Miko
 	 		Yohan Trepanier-Montpetit
Codes perm. : BLAN24079109
			  TREY16079108
Professeur : Chamseddine Talhi
Charge de labo : Eric Goulet
Nom du fichier : MainClientGUI.java
Date cree : 2011-05-15
Date dern. modif. 2015-05-15
*************************************************** ****
Historique des modifications
*************************************************** ****
2011-05-15 Version initiale (Yohan Trepanier)
***************************************************/

/**
 * Classe principale qui gere tout le GUI.
 */
@SuppressWarnings("serial")
public class MainClientGUI extends JFrame implements Runnable{

	/**
	 * C'est le main de notre application, ce code est le premier a etre lu lors de l'execution
	 * @param args
	 */
	public static void main(String[] args) {
		//Demarrage du gui sur un autre thread
		Thread thread = new Thread(new MainClientGUI());
		thread.start();
	}
	
	private DrawPanel drawPanel;	//Le panel dans lequel on dessinera
	
	/**
	 * Mise en place du JFrame
	 */
	public void setUpFrame(){
		
		//titre et forme
		setTitle("Gestionnaire de formes");
		setSize(500, 500);
		
		//ajout du paneau de dessin
		drawPanel = new DrawPanel(getWidth(), getHeight());
		add(drawPanel);
		
		//ajout de la barre de menu
		setJMenuBar(new MonMenuBar(drawPanel));

		//autre..
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		setVisible(true);

		addWindowListener(new WindowListener() {
			
			@Override
			public void windowOpened(WindowEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowIconified(WindowEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowDeiconified(WindowEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowDeactivated(WindowEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowClosing(WindowEvent arg0) {
				
				try{
					drawPanel.end();
				}catch(NullPointerException e){e.printStackTrace();}
				
				dispose();
				System.exit(0);
			}
			
			@Override
			public void windowClosed(WindowEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowActivated(WindowEvent arg0) {
				// TODO Auto-generated method stub
				
			}
		});
	}

	@Override
	public void run() {
		setUpFrame();
		
	}
}